スクリプト化されたルール

このセクション:

スクリプト化されたルール

スクリプト化されたルールを使用すると、カスタム ルールを Windows PowerShell スクリプトまたは VB スクリプトを使用して作成できるようになります。 スクリプトが成功か失敗かで、ルールの一部であるセキュリティ レベル、許可された項目、拒否された項目がユーザに適用されるかどうかが判定されます。

スクリプト化されたルールには、PowerShell または VBScript 経由でアクセスできる任意のインターフェイス (COM = コンポーネント オブジェクト モデルなど) を利用できます。

各スクリプトは、次の状況下で評価されます。

  • 新しい構成がコンピュータに配布されたとき。
  • ユーザがログオンしたとき。

スクリプトを作成または編集するには、アプリケーション制御 の構成エディタで、必要なスクリプト化されたルール セットに移動します。 ルールセット > スクリプト化 > [ルールセット名]

スクリプト化されたルール用の次のオプションを使用して、スクリプトの実行のタイミングを定義できます。

  • スクリプトの実行:
    • セッションごとにユーザとして実行 - ユーザがログオンするたびにスクリプトが実行されます。 設定は、ユーザ セッション中にのみ適用されます。
    • セッションごとにシステムとして実行 - ユーザがログオンしたときに一度、システム アカウントの権限を使用してスクリプトが実行されます。 設定は、ユーザ セッション中にのみ適用されます。
    • コンピュータごとにシステムとして実行 - コンピュータが起動されたときに一度、システム アカウントの権限を使用してスクリプトが実行されます。 コンピュータが再起動されるまで、アプリケーション制御 エージェントが再起動されるまで、または構成変更があるまで、すべてのユーザ セッションに対して設定が適用されます。

    注意: システム ユーザとしてスクリプトを実行すると、コンピュータに深刻な損害を与えるおそれがあります。上級スクリプト作成者のみが有効にしてください。

  • ログオンが完了するまで待機 - ユーザ ログオンが完了するまでスクリプトが実行されないようにする場合に選択します。

VBScript

各スクリプトがホストされたスクリプト エンジン内で実行されます。これにより、スクリプト実行の制御が大幅に向上する上、入出力の高度な制御が可能になります。

  • VBS ファイルは使用しません。
  • 別のプロセスが発生しません。

スクリプトは1つの関数として作成する必要があり、多数の関数を含めることができますが、メインの開始関数を指定しておく必要があります。 アプリケーション制御 エージェントが実行するのは開始関数で、この開始関数を使用して他の関数を呼び出せます。

AMScriptRule COM オブジェクトはスクリプト エンジンに組み込まれ、次のメソッドへのアクセスを提供します。

  • strUsername = AMScriptRule.UserName
  • strUserdomain = AMScriptRule.UserDomain
  • strSessionid = AMScriptRule.SessionID
  • strStationname = AMScriptRule.WinStation

    このインスタンスの Microsoft 標準では、WinStation が、ウィンドウ ステーション名 (通常は WinSta0) ではなく、セッションのタイプによって決まるターミナル サービス セッションの名前値 (通常は「Console」や「RDP-Tcp#34」) を返すことを意味します。

AMScriptRule COM オブジェクトには次のメソッドも含まれています。

  • strLog = AMScriptRule.Log "My Log Statement"

    ロギング文字列をエージェントのログ ファイルに出力して、スクリプト化されたルールのデバッグに使用できるようにします。

  • strEnvironmentvar = AMScriptRule.ExpandEnvironment ("%MyEnvironmentVariables%")

    スクリプトを実行しているユーザの環境変数を展開します。

WScript. シェルを使用して環境変数を展開すると、システム変数のみが返されます。

Windows PowerShell スクリプト

スクリプトが値0で戻った (終了した) 場合、スクリプトは合格であり、ルールが適用されます。 ゼロ以外の値が返された場合、スクリプトは失敗であり、ルールは適用されません。

各 PowerShell スクリプトは PowerShell.exe のインスタンス内で実行されるため、アプリケーション制御 が特定の構文を強制することも追加することもなく、正しい形式の PowerShell がすべて機能します。

PowerShell は、スクリプトを使用するすべてのエンドポイントにインストールされている必要があります。

サンプル スクリプト

関連トピック

ルールセット

ルール コレクション